Mining of user event data to identify users with common interests

ABSTRACT

A computer-implemented matching service matches users to other users, and/or to user communities, based at least in part on a computer analysis of event data reflective of user behaviors. The event data may, for example, evidence user affinities for particular items represented in an electronic catalog, such as book titles, music titles, movie titles, and/or other types of items that tend to reflect the traits of users. Event data reflective of other types of user actions, such as item-detail-page viewing events, browse node visits, search query submissions, and/or web browsing patterns may additionally or alternatively be considered. By taking such event data into consideration, the matching service reduces the burden on users to explicitly supply personal profile information, and reduces poor results caused by exaggerations and other inaccuracies in such profile information.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/047,868 entitled “MINING OF USER EVENT DATA TO IDENTIFY USERS WITHCOMMON INTEREST,” and filed on Oct. 7, 2013, which in turn is acontinuation of U.S. patent application Ser. No. 13/548,047, now U.S.Pat. No. 8,554,723, entitled “MINING OF USER EVENT DATA TO IDENTIFYUSERS WITH COMMON INTERESTS” and filed Jul. 12, 2012, which in turn is acontinuation of U.S. patent application Ser. No. 13/290,859, now U.S.Pat. No. 8,224,773, entitled “MINING OF USER EVENT DATA TO IDENTIFYUSERS WITH COMMON INTERESTS” and filed Nov. 7, 2011, which in turn is acontinuation of U.S. patent application Ser. No. 11/093,507, now U.S.Pat. No. 8,060,463, entitled “MINING OF USER EVENT DATA TO IDENTIFYUSERS WITH COMMON INTERESTS” and filed on Mar. 30, 2005, the disclosuresof which are herein incorporated by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to social networking systems, and toassociated data mining methods for identifying people having similarinterests or characteristics.

2. Description of the Related Art

A variety of web sites exist that provide matching services forassisting people in locating other people with which to establish apersonal relationship. Typically, users of such matching services mustinitially supply relatively large amounts of personal profileinformation, such as information about their respective interests,educational backgrounds, ages, professions, appearances, beliefs, andpreferences for others. The profile information supplied by the users iscompared by the matching service to identify and connect users that arepredicted to be good candidates for forming a personal relationship.Matching services also exists for connecting people that have relatedbusiness objectives.

One problem with existing matching services is that the participantssometimes supply inaccurate or misleading personal descriptions. As aresult, the users are commonly disappointed with the recommendationsmade by the matching service. Another problem is that the task ofcreating a personal profile that is sufficiently detailed to producesatisfactory results can be burdensome to users, potentially deterringusers from using the matching service.

SUMMARY

The present invention provides a computer-implemented matching servicethat takes into consideration the behaviors of users, and particularlybehaviors that strongly reflect the interests of users. The analyzedbehaviors may include or reflect any of a variety of different types ofuser actions that can be monitored or tracked via a computer network.For example, the analyzed behaviors may include the item purchases, itemrentals, item viewing activities, web browsing activities, and/or searchhistories of the users.

In one embodiment, the matching service identifies users with similarinterests based, at least in part, on a computer analysis of user eventdata reflective of user affinities for particular items, and/orcategories of items, represented in an electronic catalog. The itemsmay, for example, include book titles, music titles, movie titles,and/or other types of items that tend to reflect the traits andinterests of users having affinities for such items. The event data may,for example, include user order histories indicative of the particularitems purchased and/or rented by each user. Event data reflective ofother types of user actions, such as item-detail-page viewing events,browse node visits, and/or search query submissions, may additionally oralternatively be considered. By taking catalog-item-related event datainto consideration, the matching service reduces the burden on users toexplicitly supply personal profile information, and reduces poor resultscaused by exaggerations and other inaccuracies in such profileinformation.

Another aspect of the invention involves using the event data associatedwith catalog items to match users to groups or communities of users,such as communities associated with particular clubs, companies, othertypes of organizations, or topics. In one embodiment, the event data ofusers is periodically analyzed in conjunction with community affiliationdata to identify, for each user community, a set of items (and/or itemcategories) that “characterize” members of that community. This may beaccomplished, for example, by identifying those items (and/or itemcategories) that have significantly higher popularity levels in aparticular community than among a general population of users. Onceidentified, the community-specific sets of characterizing items (and/oritem categories) are compared to the item-related event data ofindividual users to identify and recommend communities, or associatedorganizations, to particular users.

The invention may also be implemented outside the context of anelectronic catalog of items. For example, users may be matched to usersand/or communities based on their web browsing and search historiesacross the World Wide Web, or based on other types ofnon-catalog-related events that may be tracked via a computer network.

Neither this summary nor the following detailed description purports todefine the invention. The invention is defined by the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a system that implements a matching service accordingto one embodiment of the invention.

FIG. 2A illustrates an example search screen that may be provided by thematching service to support interactive searches for people.

FIG. 2B illustrates an example search results page for a people search.

FIG. 3A illustrates an example search screen that may be provided by thematching service to support searches for user communities.

FIG. 3B illustrates an example search results page for a communitysearch.

FIG. 4 illustrates one example of a process that may be executed by thematching service to match users to other users.

FIG. 5 illustrates one example of a process that may be executed by thematching service to match users to user communities.

DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS

A system that embodies various aspects and features of the inventionwill now be described with reference to the drawings. This descriptionis intended to illustrate, and not limit, the present invention. Thescope of the invention is defined by the claims.

I. SYSTEM OVERVIEW

FIG. 1 illustrates the functional components of a server system 30 thatimplements a matching service according to one embodiment of theinvention. The system 30 may, for example, be in the form of a web site,or a collection of web sites, that can be accessed via client devices 32(personal computers, personal digital assistants, mobile phones, set topboxes, etc.) that include web browsing functionality. The system 30 mayalternatively be in the form of an online services network, aninteractive television system, or another type of multi-user interactivesystem.

As depicted in FIG. 1, the system 30 includes a front end 34 which may,for example, be implemented as a collection of executable code modulesand associated content. The front end 34 includes a catalogbrowse/search component 36 that provides functionality for users tointeractively browse and search an electronic catalog of items, such asbut not limited to products that are available to purchase and/or rentvia the system 30. The items represented in the electronic catalog may,for example, include book titles, movie titles, and/or video titles invarious media formats (e.g., physical books, electronic books, books ontape, movie titles on DVD, movie titles on VCR tape, video downloads,CDs, downloadable music files, etc.). Other categories of items that maybe represented in the catalog include, but are not limited to, consumerelectronics, software, tickets for entertainment events, tickets fortravel, sporting goods, gourmet food, magazine subscriptions, articles,and web sites. The items represented in the electronic catalog may alsoinclude or consist of services, such as but not limited to cellularphone services, Internet access services, and web site hosting services.Many thousands or millions of different items may be represented in thecatalog.

Descriptions of the various items that are represented in the catalogare retrieved from a catalog data repository 38, which may beimplemented as a database or a collection of databases. The items may bearranged within the repository in a hierarchy of item categories andsubcategories, which may be exposed to users as respective nodes of abrowse tree. In one embodiment, when a user locates a particular item inthe catalog (e.g., by conducting a search or navigating a browse tree),the user can “click-through” to a corresponding item detail page to viewdetailed information about the corresponding item. In the case ofproducts, an item's detail page may provide an option to purchase theitem new and/or used from one or more sellers. The front end 34 may alsoprovide functionality for users to rate and review items represented inthe catalog, and to view the ratings and reviews of other users.

As depicted in FIG. 1, as users browse and search the catalog, one ormore different types of user-generated events may be recorded in a datarepository 42 of event data. For example, each search query submissionand each click-through to an item detail page may be recorded in thedata repository 42 in association with the particular user. Other typesof events that reflect the item or product preferences of users, such asaccesses to browse nodes (item categories) of a browse tree, may also berecorded. One example of a software and hardware architecture that maybe used to capture and provide access to user event histories isdescribed in U.S. Patent Pub. 2005/0033803 A1, the disclosure of whichis hereby incorporated by reference. As described below, the collectedbrowse/search event data is one type of information that may be takeninto consideration in matching users with other users and/or usercommunities.

In some embodiments, event data reflective of user actions may also becollected from one or more other sources. For instance, users of thematching service may be permitted or required to install, on theirrespective client devices 32, a browser plug-in, such as a browsertoolbar program, that reports each web user's browsing and searchingactivities to the system 30. In such embodiments, the event dataanalyzed for purposes of matching users may reflect user browsingactivities across many different independent web sites. For instance,the browser plug-in installed on each user's client device 32 mayreport, to a server associated with the matching service 62, every URL(Uniform Resource Locator) accessed by the user on the Internet, inwhich case the matching service may seek to identify users who tend tobrowse the same or similar web sites and pages. The plug-in may alsoreport the search queries submitted by each user, and the associatedsearch result items selected by the user. Examples of browser plug-insthat may be used to implement these features are described in U.S.Patent Publication 2005/0033803 A1 and U.S. Pat. No. 6,691,163, thedisclosures of which are hereby incorporated by reference.

Information about users' preferences for particular network resources(web sites, web pages, blogs, etc.) may also be collected withoutrequiring users to install a browser plug-in, or any other specialsoftware, on their respective computing devices 32. For example, suchpreference information can be collected by providing an Internet searchengine system that records users' selections of particular links onsearch results pages. With this method, when a user clicks on a searchresults link corresponding to a particular external URL, the user'sselection is initially recorded by a server associated with the searchengine, and the user's browser is then redirected to the external URL.This method is described in U.S. Patent Publication 2005/0033803 A1,referenced above. As another example, a browsable web site directory maybe set up for purposes of assisting users in locating web sites ofinterest, and each user's selections, from this directory, of particularweb sites to access may be recorded. This method is described in U.S.application Ser. No. 10/766,368, filed Jan. 28, 2004, the disclosure ofwhich is hereby incorporated by reference. As yet another example, aserver system that tracks user referrals generated by affiliate websites in an affiliate marketing program, as described, e.g., in U.S.Pat. No. 6,029,141, may keep track of affiliate web sites accessed byeach user, and report this information to the matching service. In allof these examples, the information about the users' preferences may becollected directly by the provider of the matching service, or may beobtained through partnerships with other online business entities.

As further depicted in FIG. 1, the front end 34 in the illustratedembodiment also includes an order placement component 46 that providesfunctionality for users to place orders for specific items representedin the catalog. The orders may include purchase orders and/or rentalorders, and may be fulfilled by one or more business entities associatedwith the system 30. Each order event, including an identifier of theuser, identifiers of the item or items ordered, and the date/time of theorder, is recorded in the repository 42 of event data. (In the contextof DVD rentals using rental queues, a DVD may be treated as ordered by auser if, for example, the DVD is actually shipped to the user). Therepository 42 thus includes the order history of each user of the system30 in the illustrated embodiment. Although the order event histories ofusers (including purchase and/or rental histories) provide a highlyeffective mechanism for matching users to other users, as will beapparent, the invention can be practiced, in some embodiments, insystems that do not provide functionality for ordering items. Forexample, in the context of a web site for users to post ratings andreviews of particular items, the matching service may identify userswith similar interests based on the item rating activities of users.

Although a single repository 42 of event data is depicted in FIG. 1,different types of event data may be stored in different databasesand/or on different physical machines. For example, browse and searchevent data may be stored in one database of the repository 42, and orderevent data may be stored in another database of the repository 42.

As depicted by the block 52 labeled “user profiles and affiliations” inFIG. 1, the front end 34 may also provide functionality for users topost personal profiles of themselves for viewing by other matchingservice participants. For example, a user may upload a personaldescription and photo of himself or herself, which may be presented toothers via a personal profile page. To encourage users of the matchingservice 62 to supply profile information that is helpful to the matchingprocess, that matching service may, over time, ask a given user toanswer one or more targeted questions, such as “what is your favoritehobby?” or “what is your favorite television show?” These questions maybe presented incrementally over time so that the users are not burdenedwith having to fill out lengthy forms.

The system 30 may also provide functionality for users to explicitlyaffiliate themselves with specific user groups or “communities.” Forinstance, users may be able to browse descriptions of user communitiesthat are defined within the system, and to join selected communities forpurposes of communicating with other users. Each such community mayrepresent or correspond to a respective subset of the users of thesystem 30. Information about the profiles and group affiliations ofusers is recorded in an associated user profiles repository 54.

Although the embodiment depicted in FIG. 1 allows users to create andpublish personal profiles, as will be apparent from the descriptionbelow, the present invention may be implemented without requiring usersto create personal profiles, and/or without using such profiles to matchusers. The invention may also be implemented in a system that does notprovide functionality for users to affiliate themselves with any usergroups or communities.

With further reference to FIG. 1, the front end 34 also includes amatching service user interface (UI) 60 that provides access to thematching service 62. The matching service may, for example, be madeavailable to all registered users of the system 30, or to all registeredusers that meet certain criteria (e.g., have ordered a threshold numberof items). As is typical where the sharing of personal information isinvolved, users may be required to “opt in” before their personalinformation is exposed to other matching service participants. As partof the process of opting in, users may be given the option to exposetheir respective order histories, or selected portions of such orderhistories, to other matching service users. The users may also be giventhe option to expose other types of event and activity data, includingtheir respective search histories and web browsing histories.

In one embodiment, the matching service 62 operates in part by analyzingsome or all of the collected user event data to identify users that tendto have affinities for the same or similar items, or that otherwise havesimilar characteristics. A clustering algorithm, and/or an algorithmthat calculates degrees of similarity between specific pairs of users,may be used for this purpose. The items may, for example, includephysical products, downloadable products, and/or services. As depictedin FIG. 1 and described below, a database of item similarity data 66 mayoptionally be used by the matching service 62 to evaluate the degrees towhich the items purchased or otherwise selected by two users aresimilar.

The type or types of event data analyzed by the matching service 62 mayvary widely depending upon the nature and purpose of the particularsystem 30. For example, in the context of an online store ormarketplace, the matching service may primarily or exclusively analyzeuser purchase data, which tends to be a very strong indicator of theitem preferences of users. In systems that do not support online salesof items, the analysis may be based on one or more other types ofuser-generated events, such as but not limited to item rental events,item rating events, item viewing events, page viewing events, pagerevisit events, search query submissions, accesses to particular websites, cell phone usage events, and/or other types of activities thatcan be monitored or tracked via a computer network.

As part of the analysis of the event data, the matching service 62 maygive greater weight to specific types or categories of events that tendto strongly reflect the traits, interests, or hobbies of users. Forexample, in the context of an online store that sells books and CDs,greater weight may optionally be accorded to book purchases than tomusic purchases based on the assumption that book purchases morestrongly reflect the traits and interests of the particular user.Further, in the context of book sales, a purchase of an instructionalbook regarding a particular hobby or activity (e.g., rock climbing orscuba diving) may be given more weight than a purchase of a book in the“fiction” category. The weight given to the purchase of a particularitem may also be dependent upon (e.g., directly proportional to) theprice paid for the item. In addition, as described below, the weightgiven to the purchase or rental of a particular item may be dependentupon the current popularity level of the item, as determined based onone or more types of user actions (purchases, rentals, item viewingevents, etc.) of a population of users.

More generally, the matching service 62 may apply one or more weightingheuristics that give greater weight to some types of events or behaviorsthan others. The heuristics may be defined so as to give the most weightto events that are deemed to be the best indicators of the interests andtraits of the associated users.

The results of the event data analyses are used by the matchingservice—optionally in combination with other criteria such asuser-supplied profile data or screening criteria—to select users to berecommended or “matched” to other users. Two users that are selected bythe service to be matched to each other are referred to herein asmatching users. The matching service may identify matching users in realtime in response to queries from users, and/or may identify matchingusers periodically in an off-line or batch processing mode. Examples ofspecific similarly metrics that can be calculated to measureuser-to-user similarity are described below. Upon identifying a pair ofmatching users, the service 62 may notify one or both users of the otheruser, and may provide a messaging option for the two users tocommunicate.

In addition to matching users to other users, the matching service 62may provide a service for matching individual users to specific groupsor communities of users. These communities may, for example, include“explicit membership” communities that users explicitly join forpurposes of communicating about particular subjects or topics. Forinstance, an explicit membership community may exist for the topic ofdigital photography. The communities may also include “implicitmembership” communities that consist of users who share a commonattribute. For example, all users of the system that have the string“redcross.org” in their respective email addresses may automatically betreated by the system as being members of the implicit membershipcommunity “Red Cross Employees.” Thus, for example, users may use theuser-to-community matching feature to identify specific communities oruser groups to join, and/or to identify specific companies ororganizations with which to seek employment. As depicted in FIG. 1,information about the various communities that are defined within thesystem 30 may be stored in a database 70 that is accessed by thematching service 62.

The user-to-community matching functionality may be implemented in-partby periodically analyzing the purchase event histories, rental eventhistories, and/or other event data of all or a representative samplingof all users to identify, for each user community, a set of catalogitems that are significantly more popular in the respective usercommunity than in a general user population. For example, the purchasehistories of users with “redcross.org” in their respective emailaddresses may be compared to the purchase histories of all users toidentify any items that are significantly more popular among Red Crossemployees. These items are referred to as the community's“characterizing items,” as they characterize the item preferences of thecommunity relative to the preferences of a more general user population.Examples of algorithms that may be used to identify the items thatcharacterize particular user communities are described in U.S.application Ser. No. 09/377,447, filed Aug. 19, 1999, the disclosure ofwhich is hereby incorporated by reference. To assess the degree to whicha given user matches a user community, the user's order history, and/orother information about the user's item preferences, can be compared tothe community's set of characterizing items using the similarity metricsdescribed below.

As depicted by the data repository 72 labeled “blogs and chat rooms” inFIG. 1, the matching service may also include functionality for matchingusers to blogs, chat rooms, and/or other types of electronic forums forsharing information. This may be accomplished by, for example,identifying keywords and keyword phrases that characterize a user'spurchases, searches, and/or other types of events, and matching thesekeywords and keyword phrases to content associated with specific blogsand chat rooms. In the case of chat rooms, a user could also be matchedto a chat room by, for example, calculating a degree to which the user'sorder history is similar to the order histories of a chat room'sparticipants.

II. EXAMPLE USER INTERFACE

Examples of web pages or screens that may be provided by the matchingservice 62 to facilitate interactive searches will now be described withreference to FIGS. 2A, 2B, 3A, and 3B. It should be understood, however,that the present invention does not require the use of such pages orscreens, and does not require the ability for users to conductinteractive searches. For example, the matching service 62 mayautomatically match users, and output its results, without requiringusers to conduct or initiate searches.

FIG. 2A illustrates one example of a search page for conducting searchesfor other people. By clicking on the button labeled “find me a match,” auser can initiate a search for other people with similar interestsand/or characteristics. The user conducting the search (the “searcher”)can initiate the search, in one embodiment, without first creating apersonal profile with the matching service 62. To limit the scope of thepeople search, the searcher can optionally specify a particularlocation, gender, and/or age range. If the searcher supplies suchadditional search criteria, the search results may, in some cases, belimited to users who have explicitly created personal profiles with thematching service.

The web page shown in FIG. 2A includes respective tabs 74 for accessinga “communities search” page (shown in FIG. 3A), a “blog search” page, a“chat room search” page, and a personal profile page. The personalprofile page (not shown) may provide functionality for users to createand/or edit their respective personal profiles. If such a profile isprovided, it may be partially or fully exposed to other matching serviceparticipants. The personal profiles, where provided, may also be used toimprove the accuracy of the search results/recommendations provided bythe matching service 62. The personal profile page, and/or other pagesof the matching service UI, may also provide an option for users tospecify and/or prioritize the types of recorded user actions and eventsthat are taken into consideration in conducting searches. For example, auser may have the option to exclude from consideration, and/or tospecify weights that are to be given to, certain item purchases (orcategories of purchases), and/or certain browsing events (or categoriesof browsing events).

FIG. 2B illustrates one example of a “people-search results” page thatmay be provided by the matching service 62 in response to a searchrequest generated from the page in FIG. 2A. The first hypothetical userlisted on this page (“Joe Smith”) has created a matching serviceprofile; as a result, the associated search result listing includes thisuser's photograph, a summary of his personal profile, and a link to hispersonal profile page. The second user listed on the search results page(“Mark Johnson”) has not created a matching service profile. As aresult, the only information displayed about this second user is hislocation, which may be based, e.g., on his shipping or credit cardaddress used in connection with e-commerce transactions, or on his IPaddress.

To generate people-search results of the type depicted in FIG. 2B, thematching service 62 may take into consideration a wide range ofdifferent types of recorded user activity and behaviors. For example, asmentioned above, the matching service may take into consideration eachuser's item purchases, item rentals, item viewing activities, itemrating activities, search query submissions, and/or web browsingactivities. The matching service may additionally or alternatively takeinto consideration other types of information about each user,including, by way of illustration and not of limitation, any one or moreof the following: (1) gift purchases made by other users for thisparticular user; (2) the gift wrap used by such other users whenpurchasing gifts for this user, such as when the gift wrap evidences theuser's religion (in the case of Christmas or Hanukkah gift wrap, forexample); (3) the time of day at which the user typically engages inonline activity; (4) the location (e.g., city) or locations from whichthe user accesses the matching service 62 or otherwise engages in onlineactivity, as may be determined reasonably accurately based on IPaddresses associated with the user computing devices; (5) any blogs, RSSfeeds, email newsletters, and/or other content channels to which theuser subscribes; (6) the user's item rating profile, which may becollected, e.g., by systems that provide functionality for users to rateparticular items represented in an electronic catalog; (7) the user's“reputation” for supplying high quality item reviews or other content asdetermined based on votes cast by other users, as described, forexample, in U.S. application Ser. No. 09/715,929, filed Nov. 17, 2000and Ser. No. 10/640,512, filed Aug. 13, 2003, the disclosures of whichare hereby incorporated by reference; (8) the user's residence location,as determined or inferred based on the shipping or credit card addresssupplied by the user for purposes of conducting online transactions; (9)the company or type of company the user likely works for, as determinedor inferred from the user's email address (e.g., the email addressJoeDoe@apple.com likely identifies a user who works for Apple Computer);(10) the user's travel preferences, as determined based on online ticketpurchases; (11) the user's cell phone usage; (12) the user's musicdownload history; (13) news articles selected by the user for viewingonline; (14) the television programs selected by the user via an onlinetelevision programming guide used to program digital video recorders;(15) the other matching service participants selected by this user tocontact or read about; (16) specific communities selected by the user tojoin or read about; (17) information about how the user has redeemedloyalty points associated with a credit card, frequency flyer program,or other loyalty program; (18) the user's preferences for particulartypes or clusters of search results on search results pages, (19) theuser's credit card transactions. Data regarding these and other types ofuser behaviors may be collected, and incorporated into the matchingprocess, via automated processes such that the users need notaffirmatively perform any action to supply the matching service withsuch information.

As illustrated in FIG. 2B, the “people-search results” page displays,for each located user, a link labeled “why selected,” and a link labeled“contact this person.” If the searcher clicks on “why selected,” thematching service 62 returns a web page (not shown) with informationabout why this user was selected to recommend. This information mayinclude, for example, summarized information about the common interestsand behaviors of the two users (i.e., the searcher and the locateduser). For example, the “why selected” information may identify that thetwo users have similar preferences for books, book genres, authors,DVDs/movie titles, actors, music categories, musical artists, albums,web sites, blogs, chat rooms, topics, television shows, matching serviceparticipants, and/or user communities.

The link labeled “contact this person” in FIG. 2B can be selected by thesearcher to access a form for sending a message to the located user.This message may be conveyed by email, via a web page, via an instantmessage, or using any other appropriate communications method. Whenevera first user contacts a second user via such a link, the event may berecorded in association with the first user, and thereafter taken intoconsideration in identifying people and communities to recommend to thefirst user.

The people-search results page shown in FIG. 2B also displays, for eachlocated user, a link labeled “more people like this.” Selection of thislink causes the matching service 62 to search for, and return a list of,people who are similar to the corresponding located user. This searchmay be conducted using the same type or types of event data as listedabove, and using the same types of similarity metrics as describedbelow.

With further reference to FIG. 2B, the people-search results page alsoincludes a drop down box 75 for sorting the search results by one ormore criteria. This drop down box 75 may provide an option to sort thesearch results by, for example, any one or more of the following: bestoverall match, closest in location, most similar purchase history, mostsimilar rental history, most similar book preferences, most similarmusic preferences, most similar DVD/movie preferences, most similar website preferences, closest match based on personal profile. Thus, thesearcher can interactively sort the search results to locate usershaving desired characteristics.

FIG. 3A illustrates one example of a search page for conducting searchesfor user communities. By clicking on the button labeled “find me amatch,” a user can initiate a search for specific communities, such asoffline and online clubs and organizations, which may be of interest tothe user. The matching service 62 may conduct this search using the sametype or types of user data as mentioned above for people searches, andwithout requiring the searcher to first create a personal profile. Inthe particular example shown in FIG. 3A, a drop down box 76 is providedto allow the searcher to limit the scope of the search to a specifictype of community, such as online communities, offline communities,companies, clubs, professional organizations, and/or localorganizations.

FIG. 3B illustrates one example of a “community-search results” pagethat may be provided by the matching service 62 in response to a searchrequest generated from the page in FIG. 3A. Two communities that areresponsive to the search request are shown. The first is the CascadeBicycle Club, which may be an actual organization with which users canbecome affiliated via a user interface of the system 30. The secondcommunity is an implicit-membership community (one that cannot be joinedvia the system 30) consisting of users having the string “alexa.com” intheir respective email addresses, indicating likely employment by thecompany Alexa Internet. The ability for the searcher to locate a companywhose employees have similar interests or characteristics to his or herown may be useful where, for example, the searcher is looking for acompany with which to seek employment.

For each of the located communities, the community-search results pageof FIG. 3B displays a short description of the community, and displays a“view profile” button for accessing more detailed information. Thecommunity information that is viewable via the “view profile” buttonmay, for example, include one or more of the following: (a) a list ofthe items (books, music titles, video/DVD titles, etc.), or categoriesthereof, that characterize, or tend to be uniquely or unusually popularin, the corresponding community; (b) other types of characterizingactions or behaviors of members of this community, such ascharacterizing searches, characterizing item rentals, and/orcharacterizing web site affinities; (c) a list of users affiliated withthis community, together with links for contacting these users; (d) ifapplicable, a link to a form for joining the community.

With further reference to FIG. 3B, the community-search results pagealso displays the following links for each located community: a “whyselected” link, a link for accessing the community's web site (if such aweb site exists), and a link for initiating a search for morecommunities similar to the one shown. As with the people-search resultspage of FIG. 2B, the “why selected” link may be selected by the searcherto view information about why the particular community was selected torecommend. This information may include, for example, summarizedinformation about common interests and behaviors of the searcher andmembers of this community. For example, the “why selected” informationmay identify that the characterizing book purchases of the community aresimilar to the book purchases of the searcher, or may otherwise specifythe types of behaviors/interests the searcher has in common with membersof the community. The community-search results page also includes a dropdown box 78 for sorting the search results by one or more criteria, suchas those listed above for people searches.

Although not depicted in the example web pages shown in FIGS. 2A, 2B 3Aand 3B, the matching service UI may also include a web form forproviding relevance feedback to the matching service 62, such as arating on a scale of 1 to 5, regarding the quality or accuracy of eachrecommendation. Where a relevance feedback option is provided, anyfeedback provided by a user may be taken into consideration by thematching service in generating subsequent recommendations for thecorresponding user. Various other user interface pages and functions maybe provided for performing other types of actions associated with thematching service 62. Further, the system 30 may implement some or all ofthe features described in U.S. Pat. No. 6,269,369, the disclosure ofwhich is hereby incorporated by reference, which discloses anetwork-based contact management system in which users can establishlinks to other users for purposes of sharing information.

III. PURCHASED-BASED SIMILARITY METRICS

In one embodiment, the matching service 62 calculates one or moresimilarity metrics that reflect the degree to which two users aresimilar. These metrics may be used individually or in combination by thematching service to determine whether these two users should be matchedto one another. This section describes several examples of metrics thatcan be generated based on users' purchases. As described in thefollowing sections, these metric calculations can also be applied toother types of event data, such as event data descriptive of item rentalevents, item viewing events, page viewing events, web browsing patterns,and/or search query submissions of users. In addition, as described insection VIII, the same or similar metrics can be used to match users tocommunities.

One purchase-based similarity metric that can be used is the totalnumber of purchases two users have in common. If used alone as the solemetric for measuring user similarity, the users matched to a particular“target user” may be those who have the greatest number of purchases incommon with the target user. For purposes of counting common purchases,two items may be treated as the same if they merely differ in format orversion; for example, the hardcover, paperback and electronic versionsof a given book title may be treated as the same item, and the videotape, DVD, and video-on-demand versions of a given movie title may betreated as the same item.

Rather than merely considering total numbers of purchases in common, asimilarity score can be generated that gives greater weight to purchasesof items that tend to strongly reflect the interests and traits of thepurchasers. For example, book titles may be accorded a weight of 10,music titles a weight of 5, video/DVD titles a weight of 3, and allother items a weight of 1. Using these weight values, if users A and Bhave common purchases as listed below, the similarity score for thispair of users would be (10×2)+(5×4)+(3×3)+(1×9)=58:

-   -   2 book titles;    -   4 music titles;    -   3 video/DVD titles; and    -   9 items falling in other product categories.

The weights applied to specific purchases may also be dependent upon thepopularity levels or sales ranks of the associated items. For example,greater weight can be given to a common purchase of a relativelyunpopular or obscure item than to a common purchase of a relativelypopular item. This may be accomplished, for example, by scaling theweight by a factor of two if the commonly purchased item has a salesrank that falls below a selected threshold. For instance, a commonpurchase of a book falling below the sales rank threshold may beaccorded a weight of 20, while a common purchase of a book falling at orabove the sales rank threshold may be accorded a weight of 10. Anotherapproach is to calculate and use a scaling factor that is inverselyproportional to the item's sales rank.

Rather than merely considering item purchases that are common to bothusers, a similarity metric may be generated that also takes intoconsideration items that were purchased only by one of the two users.This may be accomplished by, for example, calculating a normalized score(NS) according to the following equation, in which N_(common) is thenumber of items common to the purchase histories of both users, SQRT isa square-root operation, N_(A) is the total number of unique items inuser A's purchase history, and N_(B) is the total number of unique itemsin user B's purchase history:

NS=N _(common)/SQRT(N _(A) ×N _(B))  Eq. 1

With this approach, NS can vary from zero to one, with higher valuesindicating higher degrees of similarity between the two users. To weightsome types of purchases more heavily than others, different NS valuesmay be generated for different types or categories of purchased items.For example, equation 1 can be applied to all book purchases of users Aand B to generate a book-specific normalized score, NS_(books).Similarly, equation 1 can be applied separately to the music purchases,video/DVD purchases, and “other” purchases of users A and B to generate,respectively, NS_(music), NS_(videos), and NS_(other). To ensurestatistically meaningful results, some minimum number of purchases maybe required of users A and B within a given item category before anormalized score is generated for that item category. These normalizedscores may be combined to generate a composite normalized score. Forinstance, using the weighting values from the example above, a compositenormalized score NS_(composite) may be calculated as(10NS_(books)+5NS_(music)+3NS_(videos)+NS_(other))/19.

Both the composite normalized score and the constituent normalizedscores may be considered in determining whether users A and B aresufficiently similar to recommend one user to the other. For example,NS_(books), NS_(music), NS_(videos), NS_(other) and NS_(composite) mayeach be compared to a respective threshold that, if exceeded, will causea match event to be triggered. If a match is triggered, appropriatemessaging may be provided to indicate the area in which the users have acommon interest. For example, if user A is conducting a search, and userB is displayed in the search results because NS_(books) and NS_(music)exceed their respective thresholds, user A may be notified that user Bhas similar preferences for books and videos.

The product categories (books, music, videos and other) in the aboveexamples are merely illustrative. The actual product categories used, ifany, will generally be dependent upon the nature and purpose of theparticular system 30 associated with the matching service. For instance,if the system is strictly a music store, each product category maycorrespond to a particular type of music, such as pop, jazz, andclassical.

To reduce the quantity of real time processing performed each time auser conducts a search (assuming an interactive search interface isprovided), the matching service 62 may periodically execute a clusteringalgorithm that groups the overall population of matching serviceparticipants into multiple clusters. For instance, all users that haveat least two purchases in common may be clustered together. At searchtime, the user conducting the search may be compared only to those userswho are members of a cluster of which the searcher is a member. Withthis approach, the number of real time user-to-user comparisonsperformed may, for example, be reduced from hundreds of thousands toseveral hundred.

The foregoing are merely examples of the types of metrics that can beused to identify users with similar interests or behaviors. A wide rangeof other types of heuristics and metrics may additionally oralternatively be used. As one example, the event histories of an entirepopulation of users may be programmatically analyzed to generateassociation rules that associate particular user behaviors or interests.For instance, by collectively analyzing the purchase histories of users,an association rule may be generated which indicates that users whopurchase items A and B are likely to be interested in items C and D;this association rule may in turn be used as a basis for recommending,to a target user who has purchased items A and B, a user who haspurchased items C and D. As another example, the actions of usersassociated with particular user communities may be analyzed to generatean association rule indicating that users who purchase items F, G and Hare likely to be interested in a particular user group or community;this rule may then be used to recommend the community to users whopurchase items F, G and H.

Although the scores discussed in the foregoing examples are in the formof numerical values, scores in the form of vectors, character data, setsof values, and other types of elements may be used.

IV. SIMILARITY METRICS BASED ON OTHER TYPES OF ITEM SELECTION EVENTS

A purchase of an item is one type of item selection action that can betaken into consideration in evaluating degrees to which users aresimilar. Other types of item selection actions/events that reflect useraffinities for particular items may additionally or alternatively betaken into consideration. For instance, user similarity may additionallyor alternatively be measured based on any one or more of the following:(a) the items selected to rent by each user, (b) the items selected toadd to a shopping cart by each user, (c) the items selected to add to arental queue by each user, (d) the items selected by each user to rateor review, (e) the items selected for viewing by each user, (f) theitems added to a personal wish list by each user, (g) in the case ofmusic files, the items (song titles or tracks) added to a personal playlist by each user, (h) user selections or “click throughs” of searchresult items listed on search results pages, (i) user selections ofitems, such as web sites or pages, to bookmark.

Thus, equation 1 above may be generalized to any type of item selectionactivity that evidences user affinities for particular items. This maybe accomplished by redefining the variables of equation 1 as follows:N_(common)=number of items common to the item selections of both users,N_(A)=total number of unique items selected by user A, and N_(B)=totalnumber of unique items selected by user B. Where multiple differenttypes of user activity are taken into consideration, different weightsmay be applied to different types of item selection events. For example,item purchases may be accorded a weight of ten while item viewing eventsmay be accorded a weight of one; this may be accomplished, for example,by generating a purchase-based normalized score, NS_(purchase), and aviewing-based normalized score, NS_(view), and calculating the weightednormalized score NS_(weighted)=(10NS_(purchase)+NS_(view))/11.

V. ACCOUNTING FOR ITEM SIMILARITIES

As mentioned above, the matching service 62 may also take intoconsideration whether, and/or the extent to which, an item selected byone user is similar or related to an item selected by the other user.For example, if two users purchased books about mountain climbing, theservice may treat these purchases as evidencing a similarity in userinterest even though the two books are not the same.

To implement this feature, the matching service 62 may access a database66 (FIG. 1) of information about items that are similar or related toone another. This database may, for example, be generated automaticallyby performing a correlation analysis of purchase histories, item viewinghistories, and/or other types of item selection actions of users. As oneexample, two products may be treated as similar if a relatively largenumber of the users who purchased one product also purchased the otherproduct. As another example, two products may be treated as similar if arelatively large number of the users who viewed one product also viewedthe other product during the same browsing session. Similar items mayalso be identified by programmatically analyzing item contentdescriptions to identify items that are characterized by the same orsynonymous keywords and keyword phrases.

Examples of algorithms that may be used to build a database 66 of itemsimilarity data based on item selections of users are described in U.S.Pat. No. 6,853,982, the disclosure of which is hereby incorporated byreference. As described in the '982 patent, the similarity data mayinclude data values indicating degrees to which specific pairs of itemsare similar. These data values may be taken into consideration inmeasuring the degree to which two sets of items (e.g., those purchasedby two different users) are related.

Another approach is to treat two items as similar if they are bothmembers of the same bottom-level node/category of a browse tree. Yetanother approach is to measure the degree to which specific items arerelated by comparing the textual catalog descriptions of such items, asmentioned above.

The matching service may optionally accord a lesser degree of weightwhere the item purchased (or otherwise selected) by one user is similarto, but not the same as, an item purchased by another user. This may beaccomplished by, for example, calculating one score that is based onitem commonality, and another score based on item similarity, and bytaking a weighted average of these two scores.

VI. MEASURING USER SIMILARITY BASED ON CATEGORY PREFERENCES OF USERS

In addition or as an alternative to the methods described above, usersimilarity may be measured based on the degree to which the itemcategory preferences of two users are similar. For example, the matchingservice 62 may maintain a category preferences profile for each user.These profiles may be based on item purchases, item viewing events,browse node selection events, and/or other types of user activity.Specific examples of algorithms that may be used to generate categorypreferences profiles are described in co-pending U.S. patent applicationSer. No. 10/684,313, filed Oct. 13, 2003, the disclosure of which ishereby incorporated by reference. A user's category preferences profilemay, for example, be updated after each browsing session of the user, orafter each browsing session in which the user performs a particular typeof action (e.g., makes a purchase).

VII. MEASURING USER SIMILARITY BASED ON USER SEARCH HISTORIES

In addition or as an alternative to the methods described above, thematching service 62 may measure user similarity based on histories ofthe search queries submitted by each user. With this approach, two usersmay be treated as similar based on the degree to which they havesubmitted similar or identical search queries. For example, equation 1above can be used, but with N_(common)=number of search queries commonto both users, N_(A)=total number of unique search queries submitted byuser A, and N_(B)=total number of unique search queries submitted byuser B. For purposes of this analysis, two search queries may be treatedas the same if they contain the same search terms (where synonymousterms may be treated as the same), disregarding stop words, search termform (e.g., plural versus singular, past versus present tense, etc.),and search term ordering. Two search queries can be treated as similarif, for example, they contain more than a threshold number of terms incommon, disregarding common terms and disregarding search term form.Certain types of search queries, such as those with relatively obscureterms or obscure combinations of terms, may be given greater weight thanother search queries.

Search context (e.g., book search versus web search versus peoplesearch) may also be taken into consideration. In addition, the searchresult items (search hits) selected by each user from search resultspages may be taken into consideration in evaluating the degree to whichtwo users' search histories are similar.

Search history similarity may additionally or alternatively be measuredby analyzing the commonality of all search terms submitted by each user,without regard to whether specific search queries are the same orsimilar.

VIII. MATCHING USERS TO COMMUNITIES

The similarity calculations and metrics described above may also be usedto select particular user communities to recommend to a target user. Forexample, each community may be treated as a single user whose useractivity consists of actions that tend to distinguish the community fromthe general user population. For instance, if purchase histories areused, the characterizing purchases (items) of a given community mayinitially be identified. This set of characterizing items may then betreated as a purchase history that can be compared to the purchasehistories of individual users. If search histories are used, the set ofsearch queries that tend to distinguish the community from the generalpopulation may be identified and compared to the respective searchhistories of individual users.

IX. EXAMPLE PROCESS FLOWS

FIG. 4 illustrates a process that may be executed by the matchingservice 62 to recommend or “match” users to a target user. This processmay be executed in real time (or in an off-line or batch mode) inresponse to a search request of the target user, or may be automaticallyexecuted periodically such that the target user need not submit a searchrequest. In step 80, the matching service identifies a set of users tobe compared to the target user. This set of users may, for example,include all matching service participants, or those matching serviceparticipants that satisfy screening criteria supplied by the target user(e.g., restrictions based on age, gender, geographic region, etc.). Inaddition, as described above, a clustering algorithm may be executedperiodically to group like users into clusters, in which case the set ofusers identified in step 80 may consist of users that belong to acluster of which the target user is a member. If a clustering algorithmis used, users may be clustered based, for example, on their itempurchase histories, item rental histories, item viewing histories,search query submissions, web browsing patterns, search result selectionhistories, age, location, gender, and/or other attributes.

In step 82 of FIG. 4, the matching service 62 selects the type or typesof event data to be used to compare the users, and retrieves such datafrom the event data repository 42. The event data used for the analysismay, for example, be limited to particular types of user activity (e.g.,item purchases), and/or to particular types of items represented in theelectronic catalog (e.g., books). As discussed above, the target usermay optionally be given the option to specify the types of event data tobe considered or excluded.

In step 84 of FIG. 4, the matching service 62 calculates one or moresimilarity scores for each user in the set identified in step 82. Eachsuch score represents or reflects a degree to which the item selectionsor preferences of the respective user are similar to those of the targetuser. As discussed above, different scores may optionally be generatedfor different categories of items (e.g., books, music, and videos) toseparately evaluate whether the two users have similar tastes in eachsuch category.

In step 86, the scores are analyzed and used to select users to match or“recommend” to the target user. This may be accomplished by, forexample, selecting the N users having the top scores, or by selectingthe users whose scores exceed a selected threshold. As mentioned above,if separate scores are generated for each of multiple item categories,each such score may independently be compared to a correspondingthreshold to determine whether to recommend the particular user. Any ofa variety of known statistical methods may alternatively be used toselect the users to recommend. The results of step 86 may be conveyed tothe target user via a web page, an email message, or any othercommunications method. If the results are presented via a web page orother type of interactive user interface, the user may also be presentedwith an option to sort these results based on various criteria, such as“best overall match,” “closest in location,” “closest in bookpreferences,” etc. (see FIG. 2B, discussed above). Selection of such acriterion causes the matching service to reorder the list of users fordisplay.

FIG. 5 illustrates one example of a process that may be executed by thematching service 62 to match users to communities. As with the processshown in FIG. 4, this process may be executed in real time (or in anoff-line or batch mode) in response to a search request of the targetuser, or may be automatically executed periodically such that the targetuser need not submit a search request. In step 90, the matching servicegenerates or retrieves, for each user community, a list of the productsor other items that characterize that community. As mentioned above, theprocessing methods disclosed in U.S. application Ser. No. 09/377,447,filed Aug. 19, 1999, may be used to generate such lists. These lists maybe generated and stored periodically (e.g., once per month), and thusneed not be generated each time the user-to-community matching processis invoked.

In step 92 of FIG. 5, the matching service retrieves the relevant eventdata for the target user. As with the user-to-user matching process, thetarget user may optionally be permitted to specify or restrict the typesof event data (including the types of items) taken into consideration.In this particular embodiment, the retrieved event data identifies a setof items selected by the target user to purchase, rent, rate, add to ashopping cart, and/or perform some other type of affinity-evidencingaction, and thus reflects the item affinities of the target user.

In step 94 of FIG. 5, the matching service generates, for each usercommunity, a score (or possibly multiple category-specific scores)representing the degree of similarity between the characterizing itemsof the community and the set of items selected by the target user. Thescores thus reflect the degree to which the target user's itempreferences match those of the corresponding community. In step 96, thescores are analyzed to select user communities to recommend to thetarget user. This may be accomplished by, for example, selecting the Ncommunities having the highest scores, or by selecting the communitieswhose scores exceed a selected threshold. If separate scores aregenerated for each of multiple item categories, each such score mayindependently be compared to a corresponding threshold to determinewhether to recommend the particular community.

One possible variation to the process shown in FIG. 5 is to identify theitem categories (rather than the specific items) that characterize eachcommunity, and to compare these sets of characterizing item categoriesto the category preferences of the target user.

X. HARDWARE IMPLEMENTATION

The matching service 62, including the process flows, metriccalculations, and functions described above, may be embodied in (andfully automated by) software code modules executed by one or moregeneral purpose computers. The code modules may be stored in any type ofcomputer storage device or devices (hard disk storage, solid state RAM,etc.). The data repositories 38, 42, 54, 66, 70, 72 shown in FIG. 1 maybe implemented using any type of computer storage device or devices, andusing any type or types of data repositories (relational databases, flatfiles, caches, etc.).

The “front end” components 36, 46, 52, 60 depicted in FIG. 1 may, forexample, be implemented using one or more physical servers configured tooperate as web servers. Each such web server may execute code modulesfor dynamically generating web pages in response to requests for theclient devices 32 of users. These code modules may generate servicerequests to various back-end services, such as the matching service 62,as needed to respond to requests from the client devices.

In the foregoing description, where the user is said to be provided anoption or ability to supply some type of information, it should beunderstood that this information may be supplied by the user bycompleting, and electronically submitting to the system 30, a web formthat is part of the system's user interface. Other electronic methodsfor collecting data from users may additionally or alternatively beused.

XI. WEB SERVICE IMPLEMENTATIONS

The matching service 62 may be implemented as a web service that isaccessible to other web sites and systems via an API (ApplicationProgram Interface). This API may, for example support the ability forother web site systems to query the matching service for recommendations(users, groups, etc.) for a particular target user. Thus, for example,when a user accesses a social networking site that is separate from butaffiliated with the matching service, the social networking site mayquery the matching service for recommendations for this user. Theresults returned by the matching service 62 in this example may becombined with, or used to refine the results of, the recommendationsgenerated by the social networking site's own matching algorithms.

As another example, when a user accesses a web site associated with aparticular organization, a query may be sent to the matching service 62for information about similar users who are affiliated with thisorganization. This query may be sent automatically, or in response to arequest by the user. The results of this query may be incorporated intoone or more web pages served to the user during browsing of theorganization's web site.

X. CONCLUSION

Although this invention has been described in terms of certain preferredembodiments and applications, other embodiments and applications thatare apparent to those of ordinary skill in the art, includingembodiments which do not provide all of the features and advantages setforth herein, are also within the scope of this invention. Accordingly,the scope of the present invention is defined only by the appendedclaims, which are intended to be interpreted without reference to anyexplicit or implicit definitions that may be set forth in anyincorporated-by-reference materials.

What is claimed is:
 1. A computer-implemented method of matching usersto user communities, the method comprising: for each of a plurality ofusers of an electronic catalog, storing event data representinguser-generated events that reflect user affinities for particular itemsrepresented in the electronic catalog; storing information about aplurality of user communities, each of which corresponds to a respectivesubset of the plurality of users and comprises multiple users;identifying a first plurality of items that characterize itempreferences of a first user community of the plurality of usercommunities; calculating a degree to which the first plurality of itemsare related to a set of items in the electronic catalog identified bythe first user; and based at least in part on the degree, determiningwhether to suggest the first user community to the first user; whereinthe method is performed by one or more computers.
 2. The method of claim1, wherein calculating the degree comprises accessing item similaritydata to determine whether the first plurality of items are similar tothe set of items identified by the first user.
 3. The method of claim 1,wherein the event data identifies at least one of the following: (a)items purchased by particular users, (b) items rented by particularusers, (c) items added to an electronic shopping cart by particularusers, (d) items added to a rental queue by particular users, (e) itemsrated by particular users, (f) items selected for viewing by particularusers, (g) search queries submitted by particular users to search theelectronic catalog.
 4. The method of claim 1, wherein the event datareflects orders placed by users for items represented in the electroniccatalog.
 5. The method of claim 4, wherein calculating the degreecomprises taking into consideration at least one additional type ofevent data reflective of user affinities for items represented in theelectronic catalog.
 6. The method of claim 1, wherein the event dataidentifies books ordered by particular users.
 7. The method of claim 1,wherein calculating the degree comprises weighting at least one type ofitem more heavily than another type of item.
 8. The method of claim 1,wherein the first user community is an explicit-membership communitythat users explicitly join via a user interface associated with theelectronic catalog.
 9. The method of claim 1, wherein the first usercommunity comprises users having email addresses associated with aparticular organization.
 10. A system of matching users to usercommunities, the system comprising: memory for storing event datarepresenting user-generated events that reflect user affinities forparticular items represented in the electronic catalog and for storinginformation about a plurality of user communities, each of whichcorresponds to a respective subset of the plurality of users andcomprises multiple users; and at least one computing device including aprocessor in communication with the memory, the at least one computingdevice operative to: identify a first plurality of items thatcharacterize item preferences of a first user community of the pluralityof user communities; calculate a degree to which the first plurality ofitems are related to a set of items in the electronic catalog identifiedby the first user; and based at least in part on the degree, determinewhether to suggest the first user community to the first user.
 11. Thesystem of claim 10, wherein calculating the degree comprises accessingitem similarity data to determine whether the first plurality of itemsare similar to the set of items identified by the first user.
 12. Thesystem of claim 10, wherein the event data identifies at least one ofthe following: (a) items purchased by particular users, (b) items rentedby particular users, (c) items added to an electronic shopping cart byparticular users, (d) items added to a rental queue by particular users,(e) items rated by particular users, (f) items selected for viewing byparticular users, (g) search queries submitted by particular users tosearch the electronic catalog.
 13. The system of claim 10, wherein theevent data reflects orders placed by users for items represented in theelectronic catalog.
 14. The system of claim 13, wherein calculating thedegree further comprises taking into consideration at least oneadditional type of event data reflective of user affinities for itemsrepresented in the electronic catalog.
 15. The system of claim 10,wherein the event data identifies books ordered by particular users. 16.The system of claim 10, wherein calculating the degree comprisesweighting at least one type of item more heavily than another type ofitem.
 17. The system of claim 10, wherein the first user community is anexplicit-membership community that users explicitly join via a userinterface associated with the electronic catalog.
 18. The system ofclaim 10, wherein the first user community comprises users having emailaddresses associated with a particular organization.
 19. Acomputer-implemented method comprising: for each of a plurality of usersof an electronic catalog, collecting and storing event data representinguser-generated events that reflect user affinities for particular itemsrepresented in the electronic catalog, said event data collected via acomputer network without requiring the users to explicitly providepersonal preference information; analyzing the event data to generate ascore that reflects a degree to which behaviors of a first user of saidplurality of users are similar to behaviors of a second user of saidplurality of users; and based at least in part on the score, determiningwhether to output the first user information about the second user;wherein the method is performed automatically by one or more computers.20. A system comprising: memory for storing event data representinguser-generated events that reflect user affinities for particular itemsrepresented in the electronic catalog, said event data collected via acomputer network without requiring the users to explicitly providepersonal preference information; and at least one computing deviceincluding a processor in communication with the memory, the at least onecomputing device operative to: analyze the event data to generate ascore that reflects a degree to which behaviors of a first user of saidplurality of users are similar to behaviors of a second user of saidplurality of users; and based at least in part on the score, determiningwhether to output the first user information about the second user.